/*
 * @Author: 刘岩 15136056318@163.com
 * @Date: 2023-11-07 09:22:56
 * @LastEditors: 刘岩 15136056318@163.com
 * @LastEditTime: 2023-11-13 13:04:02
 * @FilePath: /react-template_pc/src/stores/User.ts
 * @Description:
 */
import { makeAutoObservable } from 'mobx'
import { makePersistable } from 'mobx-persist-store'
class User {
  token: string = ''
  constructor() {
    // 自动把属性、对象、数组、Maps 和 Sets 转化成 observable
    makeAutoObservable(this)
    // 持久化数据
    makePersistable(this, {
      // 在构造函数内使用 makePersistable
      name: 'user', // 保存的name，用于在storage中的名称标识，只要不和storage中其他名称重复就可以
      properties: ['token'], // 要保存的字段，这些字段会被保存在name对应的storage中，注意：不写在这里面的字段将不会被保存，刷新页面也将丢失：get字段例外。get数据会在数据返回后再自动计算
      storage: window.localStorage, // 保存的位置：看自己的业务情况选择，可以是localStorage，sessionstorage
      // ... 还有一些其他配置参数，例如数据过期时间等等，可以康康文档，像storage这种字段可以配置在全局配置里，详见文档
    })
  }
  setToken(token: string) {
    this.token += token
  }
}
export default new User()
